﻿namespace HuwmanCode.Diagnostics.Logging

open System
open System.Runtime.Serialization
open System.ServiceModel

/// <summary>
/// The interface for a log writer
/// </summary>
[<ServiceContract>]
type ILogWriter =
    inherit IDisposable

    /// <summary>
    /// Write the trace message to the trace specified in the message.
    /// </summary>
    /// <param name="message">The trace message.</param>
    [<OperationContract(IsOneWay=true)>]
    [<TransactionFlow(TransactionFlowOption.Allowed)>]
    abstract Write: message:TraceMessage -> unit